var express = require('express');
var router = express.Router();
var async = require('async');
var	mongoose = require('mongoose'),
	memberUsers = mongoose.model('member_users');

/* 修改资料 */
router.post('/infoChange', function(req, res, next) {
	let params = req.body;

	switch(params.oType){
		case 'name': //修改名字
			memberUsers.update({
				mobile: params.mobile
			}, {
				$set: {
					userName: params.name
				}
			}).exec((err, data) => {
				if(err){
					res.json(err);
				}else{
					res.end();
				}
			})
			break;
		case 'sex': //修改性别
			memberUsers.update({
				mobile: params.mobile
			}, {
				$set: {
					sex: params.sex
				}
			}).exec((err, data) => {
				if(err){
					res.json(err);
				}else{
					res.end();
				}
			})
			break;
		case 'setAll': //修改多属性
			//普通员工
			if(params.leader){
				async.series([
					//获取上司级别
					callback => {
						memberUsers.find({
							mobile: params.leader
						}, (err, data) => {
							if(err){
								res.json({
									error: '获取上司级别出错'
								})
							}else{
								this.level = data[0].level;
								callback();
							}
						})
					},
					callback => {
						memberUsers.update({
							mobile: params.mobile
						}, {
							$set: {
					    		userName: params.userName,
					    		job: params.job,
					    		leader: params.leader,
					    		entryDate: params.entryDate,
					    		level: this.level + 1
							}
						}).exec((err, data) => {
							if(err){
								res.json(err);
							}else{
								res.end();
							}
						})
					}
				])
			}else{ //创始人
				memberUsers.update({
					mobile: params.mobile
				}, {
					$set: {
			    		userName: params.userName,
			    		job: params.job,
			    		entryDate: params.entryDate
					}
				}).exec((err, data) => {
					if(err){
						res.json(err);
					}else{
						res.end();
					}
				})
			}
			break;
		default: break;
	}
});

/* 修改密码 */
router.post('/changePassword', function(req, res, next) {
	let params = req.body;

	memberUsers.update({
		mobile: params.mobile
	}, {
		$set: {
			passWord: params.password
		}
	}).exec(err => {
		err && res.json(err);
		res.end();
	})
});

/* 获取用户列表 */
router.post('/userList', function(req, res, next) {
	let params = req.body;

	memberUsers.find({
		teamId: params.teamId
	}, function(err, data){
		if(err){
			res.json(err)
		}else{
			res.json(data)
		}
	})
});

/* 获取用户信息. */
router.post('/userInfo', function(req, res, next) {
	let params = req.body;

	memberUsers.find({
		mobile: params.mobile
	}, function(err, data){
		if(err){
			res.json({
				error: '数据获取失败'
			});
		}else{
			if(data.length){
				res.json(data[0]);
			}else{
				res.json({
					error: '用户信息获取失败！'
				});
			}
		}
	})
});

module.exports = router;